Error detection and correction techniques may be used in many digital communication systems to enable reliable delivery of data over unreliable communication channels. Many communication channels are subject to channel noise, fading, interference and other impairments and thus errors may be introduced during transmission from a transmitter to a receiver. Error detection is the detection of errors caused by channel impairments during transmission from the transmitter to the receiver. Error correction is the detection of errors and reconstruction of the original, error free data, in most cases.
Error correction techniques may be grouped into two types of methods. In the Automatic Repeat reQuest (ARQ) method, an error detection scheme is combined with requests for retransmission of erroneous data. Every block of data received may be checked using the error detection code employed, and if the check fails, retransmission of the data may be requested. The error detection, requesting retransmission and actually doing the retransmission may be done repeatedly, until the data can be received error free. In the Forward Error Correction (FEC) method, the sender encodes the data using an Error Correction Code (ECC) prior to transmission. The additional information (i.e., redundancy) added by the ECC is used by the receiver to recover the original data even though errors may have been introduced during propagation over a channel. In general, the recovered data is deemed to be the most likely original data transmitted by the transmitter.
Some digital communication systems may employ multiple levels of error detection and correction methods. For example, ARQ and FEC may be combined, such that some errors are corrected without retransmission and other errors that are not correctable by FEC are corrected via a request for retransmission. This combination of FEC and ARQ is often referred to as Hybrid ARQ (HARQ).
The Open System Interconnection (OSI) model defines a networking framework to implement communication network protocols in up to seven layers with each layer responsible for a particular type of functionality as illustrated in FIG. 1. A layer serves the layer above it and is served by the layer below it. For example, a layer that provides error-free communication across a network provides the path needed by applications above it, while it uses the next lower layer to send and receive packets of that path. A block of data along with required headers and trailers is referred to herein as a packet. The lowest layer in the OSI model is the physical layer and it provides the basic medium for communication. It may also include some form of error detection or error correction in the form of FEC. The next layer above the physical layer is the data link layer. One of the functionalities of the data link layer is the error detection and correction on the received data provided by the physical layer. The data link layer may typically employ ARQ method of error detection and correction whereas the physical layer may typically employ FEC method of error correction. Usually, the FEC method incurs much less delay (latency) compared to ARQ method which uses sending of retransmission requests and retransmissions which inherently take longer time compared to a single initial transmission with FEC.
Each layer in the OSI model may add a header to a block of user payload data to be transmitted. A header is supplemental data placed at the beginning of a block of user payload data to be transmitted. A header may contain various information that describes the content of the block of payload data. For example, the header may include the length of the data, serial number of the packet, source address, destination address, etc. The actual header contents depend on the particular layer and the particular protocol being used. Similarly, a trailer is supplemental data placed at the end of a block of user payload data to be transmitted. A trailer may contain various information that may help identify the end of the payload data or may help validate the integrity of the data. For example, the trailer may include a checksum or Cyclic Redundancy Check (CRC) for error detection. FIG. 1 illustrates a header and a trailer being added to the payload data at each layer of the OSI model. In any particular implementation of a communication system, some protocol layers may have only headers, only trailers, or both.
The combination of FEC or HARQ at physical layer and ARQ at data link layer may provide a good balance of latency and retransmissions for reliable communication. However, due to a number of reasons, additional error control mechanisms may be used at higher protocol layers in the OSI model. For example, the Internet Protocol v4 (IPv4) used at the network layer (the layer above data link layer) employs a header checksum to ensure reliable operation. In another example, the Transmission Control Protocol (TCP) used at the transport layer (the layer above network layer), may employ retransmission protocols similar to the ARQ used at the data link layer. The residual packet error rate refers to the remaining errors after the application of the error detection and/or correction method used at a particular layer. The residual error rate may be, for example, 1% after the application of error detection and/or correction at the physical layer. The residual error rate may be, for example, 0.1% after the application of error detection and/or error correction at the data link layer. Many applications such as email, file transfer, financial transactions, etc. may require completely error free communication. To provide a completely error free communication, additional level ARQ may be used at higher layers, for example in TCP at Transport layer. This additional level of error detection and correction may be further continued up to application layer depending on the type of application being used and the required degree or reliability. In some cases, it may be possible, although with infinitesimally small probability, that there are undetected errors at the application layer. This may, for example, occur in case of large file transfer, for example, exceeding 1 GByte. In such cases, the file transfer may be successful but its contents may not be correct while the user may be unaware of the errors.